package com.atguigu.guli.service.edu.service;

import com.atguigu.guli.service.edu.entity.Course;
import com.atguigu.guli.service.edu.entity.form.CourseInfoForm;
import com.atguigu.guli.service.edu.entity.query.CourseApiQuery;
import com.atguigu.guli.service.edu.entity.vo.CourseDetailsVo;
import com.atguigu.guli.service.edu.entity.vo.CourseInfoVo;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
 * <p>
 * 课程 服务类
 * </p>
 *
 * @author atguigu
 * @since 2021-06-24
 */
public interface CourseService extends IService<Course> {
    // 保存课程信息
    String saveCourseInfo(CourseInfoForm courseInfo);

    // 查询课程信息
    CourseInfoForm getCourseInfo(String courseId);

    // 分页查询
    Page<CourseInfoVo> getCourseInfoVos(Integer pageNum, Integer pageSize);

    // 更新课程信息
    void updateCourse(String id, CourseInfoForm courseInfo);

    // 查询讲师下的所有课程
    List<Course> getCourseByTeacherId(String teacherId);

    // 带条件查询的课程列表
    List<Course> getCourseList(CourseApiQuery courseApiQuery);

    // 查询课程详细信息 + 讲师信息
    CourseDetailsVo getCourseDetails(String courseId);
}
